在 PHP 中,setcookie()
函数设置的 Cookie 是通过 HTTP 响应头发送给客户端浏览器的,而 $_COOKIE 数组则是从客户端浏览器发送过来的请求头中提取的。因此,当在一次请求中调用 setcookie()
后立即尝试通过 $_COOKIE 获取该 Cookie 时是无法获取到的(不同于 ASP.NET 等机制)。
如果需要在设置 Cookie 后 立即 获取其值,可以手动将该值存储到一个变量中,或者在下一次请求时再通过 $_COOKIE 获取。例如:
setcookie("test", "value", time() + 3600); $_COOKIE["test"] = "value"; // 手动设置,以便立即使用 echo $_COOKIE["test"]; // 输出 "value"
或者在下一次请求中再获取:
// 第一次请求 setcookie("test", "value", time() + 3600); // 第二次请求 if (isset($_COOKIE["test"])) { echo $_COOKIE["test"]; // 输出 "value" }